﻿using System.Collections.Generic;
using System.Collections.ObjectModel;
using Commands;
using ImageConverter.Configuration;
using ImageConverter.Model;
using ImageConverter.Model.Enums;

namespace ImageConverter
{
    public interface IViewModel
    {
        ObservableCollection<ContainerItem> Containers { get; }
        ContainerItem SelectedContainer { get; set; }
        string InputPath { get; set; }
        string OutputPath { get; set; }
        ContainerTypeEnum ContainerType { get; set; }
        IEnumerable<ContainerTypeEnum> ContainerTypesList { get; }
        IConfiguration Configuration { get; }
        bool IsMainWindowMinimized { get; }
        bool CompressOutput { get; set; }

        //commands
        DelegateCommand<object> BrowseDirCommand { get; }
        DelegateCommand<object> BrowseOutputDirCommand { get; }
        DelegateCommand<object> RefreshContainerListCommand { get; }
        DelegateCommand<object> RecodeContainersCommand { get; }
    }
}
